//
// Created by sjjmw on 3/24/2022.
//

//应该使用dfs

#include "iostream"
#include "vector"
#include "list"
#include "algorithm"
#include "string"
#include "unordered_map"
#include "cmath"
#include<iomanip>
#include "string"
#include "map"
#include "list"

//最后还是ac了。
//记忆
//加教室，dfs一层一个学生
//1.尝试加入到之前的教室
//2.尝试开新教室
struct Sol{
    int n;
//    std::vector<int> arr;
    std::vector<char> fh;
    void dfs(char op,int cur,int sum,int conn,int lastop){
        if(op==' '){
            conn*=10;
            conn+=cur;
//            arr.push_back(cur);
//            sum+=cur;
        }else if(op=='+'){
            sum+=lastop*conn;
            conn=cur;
            lastop=1;
//            arr[arr.size()-1]+=cur;
//            sum+=cur;
        }else{
//            arr[arr.size()-1]-=cur;
            sum+=lastop*conn;
            conn=cur;
            lastop=-1;
//            sum-=cur;
        }
        if(cur!=1){

            fh.push_back(op);
        }
        if(cur==n){
            sum+=lastop*conn;
            if(sum==0){
                for(int i=1;i<=n;i++){
                    printf("%d",i);
                    if(i<n){
                        printf("%c",fh[i-1]);
                    }
                }
                printf("\n");
            }
            goto end;
        }
        dfs(' ',cur+1,sum,conn,lastop);
        dfs('+',cur+1,sum,conn,lastop);
        dfs('-',cur+1,sum,conn,lastop);

        end:
        if(cur!=1){
        fh.pop_back();
        }
    }
    void handle(
            int n1
            ){
//        arr.reserve(10);
        n=n1;
        dfs('+',1,0,0,1);
    }
};
int main(){
    int a,b,c;
//    float a,b,c,d;
    int e;

    while(std::cin>>a){
        Sol().handle(a);

//        Sol().handle(a,b);
    }

    return 0;
}